<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">
    <ui:composition template="/pages/core/plantilla/plantillaPrincipal.xhtml">
        <ui:define name="contenido">
            <h:form id="frmPrincipal">
                <p:panel id="pnlPrincipal" header="CLIENTE / #{clienteMBean.titulo}" style="#{applicationMBean.estiloTitulo}">
                    <h:panelGrid columns="8" cellpadding="4">
                        <h:outputLabel value="USUARIO" styleClass="label" rendered="#{clienteMBean.accion != 1}"/>
                        <h:outputText value="#{clienteMBean.cliente.usuario.usuario}" styleClass="label" rendered="#{clienteMBean.accion != 1}"/>

                        <h:outputLabel for="itNombres" value="NOMBRES" styleClass="label"/>
                        <p:inputText id="itNombres" label="NOMBRES" maxlength="50" value="#{clienteMBean.cliente.nombres}"
                                     readonly="#{clienteMBean.accion == 3}" required="true" size="50" styleClass="txtCampoObligatorio">
                            <f:validateLength minimum="1" maximum="50"/>
                        </p:inputText>

                        <h:outputLabel for="itApPaterno" value="APELLIDO PATERNO" styleClass="label"/>
                        <p:inputText id="itApPaterno" label="APELLIDO PATERNO" maxlength="30" value="#{clienteMBean.cliente.apPaterno}"
                                     readonly="#{clienteMBean.accion == 3}" required="true" size="25" styleClass="txtCampoObligatorio">
                            <f:validateLength minimum="1" maximum="50"/>
                        </p:inputText>

                        <h:outputLabel for="itApMaterno" value="APELLIDO MATERNO" styleClass="label"/>
                        <p:inputText id="itApMaterno" label="APELLIDO MATERNO" maxlength="30" value="#{clienteMBean.cliente.apMaterno}"
                                     readonly="#{clienteMBean.accion == 3}" required="true" size="25" styleClass="txtCampoObligatorio">
                            <f:validateLength minimum="1" maximum="50"/>
                        </p:inputText>

                        <h:outputLabel for="itDni" value="DNI" styleClass="label"/>
                        <p:inputText id="itDni" value="#{clienteMBean.cliente.dni}" onkeypress="return fn_validaTecla('entero', this)"
                                     styleClass="txtCampoObligatorio" size="20" required="true" readonly="#{clienteMBean.accion == 3}">
                            <f:validateLength minimum="1" maximum="10"/>
                        </p:inputText>

                        <h:outputLabel for="itTelefono" value="TELÉFONO" styleClass="label"/>
                        <p:inputText id="itTelefono" value="#{clienteMBean.cliente.telefono}" onkeypress="return fn_validaTecla('entero', this)"
                                     styleClass="txtCampoObligatorio" size="20" required="true" readonly="#{clienteMBean.accion == 3}">
                            <f:validateLength minimum="1" maximum="20"/>
                        </p:inputText>

                        <h:outputLabel for="itDireccion" value="DIRECCIÓN" styleClass="label"/>
                        <p:inputText id="itDireccion" value="#{clienteMBean.cliente.direccion}"
                                     styleClass="txtCampoObligatorio" size="50" required="true" readonly="#{clienteMBean.accion == 3}">
                            <f:validateLength minimum="1" maximum="100"/>
                        </p:inputText>

                        <h:outputLabel for="itEmailLaboral" value="E-MAIL LABORAL" styleClass="label"/>
                        <p:inputText id="itEmailLaboral" value="#{clienteMBean.cliente.emailLaboral}"
                                     styleClass="txtCampoObligatorio" size="50" required="true" readonly="#{clienteMBean.accion == 3}">
                            <f:validateLength minimum="1" maximum="100"/>
                        </p:inputText>

                        <h:outputLabel for="itEmailPersonal" value="E-MAIL PERSONAL" styleClass="label"/>
                        <p:inputText id="itEmailPersonal" value="#{clienteMBean.cliente.emailPersonal}"
                                     styleClass="txtCampoObligatorio" size="50" required="true" readonly="#{clienteMBean.accion == 3}">
                            <f:validateLength minimum="1" maximum="100"/>
                        </p:inputText>

                        <h:outputLabel for="itSexo" value="SEXO" styleClass="label"/>
                        <p:selectOneMenu id="itSexo" value="#{clienteMBean.cliente.sexo}" style="#{applicationMBean.estiloObligatorio}"
                                         disabled="#{clienteMBean.accion == 3}">
                            <f:selectItems value="#{clienteMBean.siEstadosSexo}"/>
                        </p:selectOneMenu>

                        <h:outputLabel for="itFechNacimiento" value="FECHA NACIMIENTO" styleClass="label"/>
                        <p:calendar id="itFechNacimiento" value="#{clienteMBean.fechaNacimiento}" label="FECHA NACIMIENTO" pattern="#{applicationMBean.formatoFecha}" required="true"
                                    style="#{applicationMBean.estiloObligatorio}" disabled="#{clienteMBean.accion == 3}" >
                        </p:calendar>

                        <h:outputLabel for="itNroTotReclamos" value="N° TOTAL RECLAMOS" styleClass="label"/>
                        <h:outputText id="itNroTotReclamos" value="#{clienteMBean.cliente.nroRecTotal}" styleClass="label"/>

                        <h:outputLabel for="itNroRecAceptados" value="N° RECLAMOS ACEPTADOS" styleClass="label"/>
                        <h:outputText id="itNroRecAceptados" value="#{clienteMBean.cliente.nroRecAceptados}" styleClass="label"/>

                        <h:outputLabel for="itNroRecDenegados" value="N° RECLAMOS DENEGADOS" styleClass="label"/>
                        <h:outputText id="itNroRecDenegados" value="#{clienteMBean.cliente.nroRecDenegados}" styleClass="label"/>

                        <h:outputLabel for="itNroServicios" value="N° SERVICIOS" styleClass="label"/>
                        <h:outputText id="itNroServicios" value="#{clienteMBean.cliente.nroServicios}" styleClass="label"/>

                        <h:outputLabel for="itFechRegistro" value="FECHA REGISTRO" styleClass="label"/>
                        <h:outputText id="itFechRegistro" value="#{clienteMBean.cliente.fechaRegistro}" styleClass="label">
                            <f:convertDateTime pattern="#{applicationMBean.formatoFechaHora}"  timeZone="#{applicationMBean.timeZone}"/>
                        </h:outputText>

                        <h:outputLabel for="itEstado" value="ESTADO" styleClass="label"/>
                        <h:outputText id="itEstado" value="#{clienteMBean.cliente.estadoTexto}" style="#{clienteMBean.cliente.inlineStyle}"/>
                    </h:panelGrid>

                    <f:facet name="footer">
                        <p:commandButton title="GUARDAR" ajax="false" icon="ui-icon ui-icon-disk"
                                         rendered="#{clienteMBean.accion != 3}" style="#{applicationMBean.estilosBtnBuscar}"
                                         value="GUARDAR" onclick="return confirm('ESTÁ SEGURO QUE DESEA REALIZAR LA OPERACIÓN');"
                                         action="#{clienteMBean.guardar}">
                        </p:commandButton>

                        <p:commandButton title="RETROCEDER" ajax="false" icon="ui-icon ui-icon-arrowreturnthick-1-w"
                                         immediate="true" style="#{applicationMBean.estilosBtnBuscar}"
                                         value="RETROCEDER" action="#{clienteMBean.retroceder}">
                        </p:commandButton>

                        <p:commandButton title="NUEVO" icon="ui-icon ui-icon-plus" rendered="#{clienteMBean.cliente.id != null}"
                                         value="NUEVO" style="#{applicationMBean.estilosBtnBuscar}"
                                         ajax="false"
                                         actionListener="#{clienteMBean.nuevo}">
                        </p:commandButton>
                    </f:facet>
                </p:panel>

                <p:panel id="pnlPrincipalDeta" header="DETALLES DEL CLIENTE" rendered="#{clienteMBean.accion != 1}" style="#{applicationMBean.estiloTitulo}">
                    <p:tabView id="tabDetaCliente" style="#{applicationMBean.estiloTitulo}">
                        <p:tab id="tabDetaClienteServicios" title="SERVICIOS">
                            <h:form id="frmDetaClienteServicios">
                                <h:panelGrid columns="8" cellpadding="4">
                                    <p:commandButton title="NUEVO SERVICIO"
                                                     icon="ui-icon ui-icon-plus"
                                                     style="#{applicationMBean.estilosBtnBuscar}"
                                                     value="NUEVO SERVICIO"
                                                     action="#{clienteMBean.nuevoServicio()}"
                                                     oncomplete="carDialogServicio.show()"
                                                     update=":frmServicio:pgFrmServicio"
                                                     rendered="#{clienteMBean.accion != 3}">
                                    </p:commandButton>
                                </h:panelGrid>

                                <h:panelGrid columns="1">
                                    <p:dataTable id="tblDetaServicios" value="#{clienteMBean.listaServicios}" var="servicio" widgetVar="widTableServicio"
                                                 paginator="true" paginatorPosition="top" rows="#{sessionMBean.cantidadRegistros}">
                                        <p:column style="text-align:center;">
                                            <h:panelGrid columns="8" cellpadding="4" styleClass="estiloPanelGrid">
                                                <p:commandButton icon="ui-icon ui-icon-search" title="VER"
                                                                 action="#{clienteMBean.verServicio}" ajax="true"
                                                                 oncomplete="carDialogServicio.show()" update=":frmServicio:pgFrmServicio">
                                                    <f:setPropertyActionListener value="#{servicio}" target="#{clienteMBean.servicio}"/>
                                                </p:commandButton>

                                                <p:commandButton icon="ui-icon ui-icon-pencil" title="EDITAR"
                                                                 action="#{clienteMBean.editarServicio}" ajax="true"
                                                                 update=":frmServicio:pgFrmServicio" oncomplete="carDialogServicio.show()"
                                                                 rendered="#{clienteMBean.accion != 3}">
                                                    <f:setPropertyActionListener value="#{servicio}" target="#{clienteMBean.servicio}"/>
                                                </p:commandButton>
                                            </h:panelGrid>
                                        </p:column>
                                        <p:column headerText="ID" styleClass="general">
                                            <h:outputText value="#{servicio.id}" styleClass="general"/>
                                        </p:column>
                                        <p:column headerText="TAXISTA" styleClass="general">
                                            <h:outputText value="#{servicio.taxista.nombreCompleto}" styleClass="general"/>
                                        </p:column>
                                        <p:column headerText="FECHA SERVICIO" styleClass="general">
                                            <h:outputText value="#{servicio.fechaServicio}" styleClass="general">
                                                <f:convertDateTime pattern="#{applicationMBean.formatoFechaHoraSegundos}"  timeZone="#{applicationMBean.timeZone}"/>
                                            </h:outputText>
                                        </p:column>
                                        <p:column headerText="ORIGEN" styleClass="general">
                                            <h:outputText value="#{servicio.origen}" styleClass="general"/>
                                        </p:column>
                                        <p:column headerText="DESTINO" styleClass="general">
                                            <h:outputText value="#{servicio.destino}" styleClass="general"/>
                                        </p:column>
                                        <p:column headerText="COMENTARIO" styleClass="general">
                                            <h:outputText value="#{servicio.comentario}" styleClass="general"/>
                                        </p:column>
                                        <p:column headerText="COSTO" styleClass="general">
                                            <h:outputText value="#{servicio.costo}" styleClass="general">
                                                <f:convertNumber pattern="#{applicationMBean.formatoMontos}"/>
                                            </h:outputText>
                                        </p:column>
                                        <p:column headerText="PASAJEROS" styleClass="general">
                                            <h:outputText value="#{servicio.cantPasajero}" styleClass="general"/>
                                        </p:column>
                                    </p:dataTable>
                                </h:panelGrid>
                            </h:form>
                        </p:tab>
                        
                        <p:tab id="tabDetaClienteReclamos" title="RECLAMOS">
                            <h:form id="frmDetaClienteReclamos">
                                <h:panelGrid columns="1">
                                    <p:dataTable id="tblDetaReclamos" value="#{clienteMBean.listaReclamos}" var="reclamo" paginator="true"
                                                 paginatorPosition="top" rows="#{sessionMBean.cantidadRegistros}" widgetVar="widTable"
                                                 emptyMessage="NO HAY REGISTROS">
                                        <p:column headerText="ID" styleClass="general">
                                            <h:outputText value="#{reclamo.id}" styleClass="general"/>
                                        </p:column>
                                        <p:column headerText="NOMBRE TAXISTA" styleClass="general">
                                            <h:outputText value="#{reclamo.nombreTaxista}" styleClass="general"/>
                                        </p:column>
                                        <p:column headerText="APELLIDO PATERNO TAXISTA" styleClass="general">
                                            <h:outputText value="#{reclamo.apPaternoTaxista}" styleClass="general"/>
                                        </p:column>
                                        <p:column headerText="APELLIDO MATERNO TAXISTA" styleClass="general">
                                            <h:outputText value="#{reclamo.apMaternoTaxista}" styleClass="general"/>
                                        </p:column>
                                        <p:column headerText="DNI TAXISTA" styleClass="general">
                                            <h:outputText value="#{reclamo.dniTaxista}" styleClass="general"/>
                                        </p:column>
                                        <p:column headerText="FECHA INCIDENTE" styleClass="general">
                                            <h:outputText value="#{reclamo.fechaIncidente}" styleClass="general">
                                                <f:convertDateTime pattern="#{applicationMBean.formatoFechaHoraSegundos}"  timeZone="#{applicationMBean.timeZone}"/>
                                            </h:outputText>
                                        </p:column>
                                        <p:column headerText="MOTIVO" styleClass="general">
                                            <h:outputText value="#{reclamo.motivo}" styleClass="general"/>
                                        </p:column>
                                        <p:column headerText="ESTADO" styleClass="general">
                                            <h:outputText value="#{reclamo.estadoTexto}" styleClass="general"/>
                                        </p:column>
                                    </p:dataTable>
                                </h:panelGrid>
                            </h:form>
                        </p:tab>
                    </p:tabView>
                </p:panel>
            </h:form>
            <p:dialog id="dialogServicio" header="SERVICIO" widgetVar="carDialogServicio" resizable="false"
                      width="750" height="300" modal="true">
                <p:messages id="msjDialogServicio" showDetail="true" autoUpdate="true"/>
                <ui:include src="/pages/clie/cliente/clienteServicio.xhtml"/>
            </p:dialog>
        </ui:define>
    </ui:composition>
</html>

